package com.wolfeyes.common.core.enums.common;

/**
 * 
 * @description 公共信息-时间格式化文本类型信息枚举管理
 * @projectName film
 * @className DateFormatTypeEnum.java
 * @see {@link TimeFormatTypeEnum #SHORTTIME}
 * @see {@link TimeFormatTypeEnum #SHORTTIMESLASH}
 * @see {@link TimeFormatTypeEnum #SHORTTIMEPOINT}
 * @see {@link TimeFormatTypeEnum #LONGTIME}
 * @see {@link TimeFormatTypeEnum #NORMALSHORTTIME}
 * @see {@link TimeFormatTypeEnum #NORMALLONGTIME}
 * @see {@link TimeFormatTypeEnum #CHINESESHORT}
 * @see {@link TimeFormatTypeEnum #CHINESEWITHMILLIs}
 * @author yanyljava
 * @since 2017年07月09日下午5:37:39
 * @createTime 2018年07月09日 下午17:04:13
 * @version 1.0.0
 * @return String
 * @throws Exception
 */
public enum TimeFormatTypeEnum {
	
	/**
	 * 短时间格式化；
	 * "HH-mm-ss"
	 */
	SHORTTIME(0, "HH-mm-ss"),
	
	/**
	 * 短时间格式化；
	 * "HH/mm/ss"
	 */
	SHORTTIMESLASH(1, "HH/mm/ss"),
	
	/**
	 * 短时间格式化；
	 */
	SHORTTIMEPOINT(2, "HH.mm.ss"),
	
	/**
	 * 长时间格式化；
	 * "HH:mm:ss"
	 */
	LONGTIME(3, "HH:mm:ss"),
	
	/**
	 * 普通短时间格式化；
	 * "HHmmss"
	 */
	NORMALSHORTTIME(4, "HHmmss"),
	
	/**
	 * 普通长时间格式化；
	 * "HHmmssii"
	 */
	NORMALLONGTIME(5, "HHmmssSSS"),
	
	/**
	 * 中文格式化，时分秒；
	 * "HH时mm分ss秒"
	 */
	CHINESESHORT(6, "HH时mm分ss秒"),
	
	/**
	 * 中文格式化，带毫秒；
	 * "HH时mm分ss秒SSS毫秒"
	 */
	CHINESEWITHMILLIs(7, "HH时mm分ss秒SSS毫秒");

	//类型编号
	private final Integer type;
	
	//类型名称
	private final String value;

	TimeFormatTypeEnum(Integer type, String value) {
        this.value = value;
        this.type = type;
    }

	/**
	 * @descript 获取类型编号
	 * @return int type
	 */
    public int getType() {
        return type;
    }
    
    /**
     * @descript 获取类型名称
     * @return String value
     */
    public String getValue() {
        return value;
    }
    
    /**
     * 根据类型编号type获取对应名称value
     * @param type 类型编号
     * @return String 类型名称value
     */
	public static String getValue(int type) {

		TimeFormatTypeEnum[] accountTypes = TimeFormatTypeEnum.values();

		if (accountTypes != null && accountTypes.length > 0) {

			for (TimeFormatTypeEnum accountType : accountTypes) {

				if (accountType.type == type) {

					return accountType.value;
				}
			}
		}
		return null;
	}
    
	/**
	 * 根据类型编号type获取对应时间格式的枚举TimeFormatTypeEnum
	 * @param type 类型编号
	 * @return TimeFormatTypeEnum 时间格式的枚举
	 */
	public static TimeFormatTypeEnum getTypeEnume(int type) {

		TimeFormatTypeEnum[] accountTypes = TimeFormatTypeEnum.values();

		if (accountTypes != null && accountTypes.length > 0) {

			for (TimeFormatTypeEnum accountType : accountTypes) {

				if (accountType.type == type) {

					return accountType;
				}
			}
		}
		return null;
	}
	
}

